home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / bowling.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-11-04  |  2.4 KB  |  76 lines

  1. 10   DIM NA$(3),S(3),T(3):COLOR 3,0,0
  2. 20  WIDTH 40:KEY OFF:LOCATE 1,1,0:CLS:DEF SEG=0:POKE 1047,64
  3. 30  LOCATE 8,12:PRINT "BOWLING CHAMP!!"
  4. 40  LOCATE 13,7:PRINT "How many bowlers? (1-4):"
  5. 50  A$="":WHILE A$="":A$=INKEY$:WEND
  6. 60  IF ASC(A$)<49 OR ASC(A$)>52 THEN 50 ELSE A=VAL(A$)
  7. 70  FOR I=1 TO A:LOCATE 15+I,8:PRINT "Bowler";I;
  8. 80  LOCATE ,16:PRINT "'s name:";
  9. 90  INPUT A$:NA$(I-1)=LEFT$(A$,8):NEXT
  10. 95  CLS:LOCATE 13,7:PRINT "Difficulty level (0-60).":LOCATE 14,7:PRINT "60=extremely easy ; 0=impossible"
  11. 100  LOCATE 16,9:INPUT DIFLVL
  12. 110  CLS:COLOR 15:LOCATE 1,10:PRINT "1  2  3  4  5  6  7  8  9  10"
  13. 120  LOCATE 2,10:FOR J=1 TO 31:PRINT CHR$(196);:NEXT
  14. 130  FOR I=1 TO A:LOCATE 2*I+1,1:COLOR I+1:PRINT NA$(I-1);:LOCATE,12
  15. 140  COLOR 15:FOR J=12 TO 36 STEP 3:PRINT CHR$(179)+"  ";:NEXT
  16. 150   LOCATE 2*I+2,10:FOR J=1 TO 31:PRINT CHR$(196);:NEXT :NEXT
  17. 160  LOCATE 12,1:FOR I=0 TO A-1:IF I=2 THEN LOCATE 14,1
  18. 170  COLOR I+2:PRINT NA$(I);":";SPC(19-LEN(NA$(I)));:NEXT :COLOR 15
  19. 180  LOCATE 15,1:FOR I=1 TO 39:PRINT CHR$(196);:NEXT
  20. 190  LOCATE 25,1:FOR I=1 TO 39:PRINT CHR$(196);:NEXT
  21. 210  FOR I=0 TO A-1:S(I)=1:NEXT
  22. 230  FOR Q=1 TO 10:FOR Z9=0 TO A-1
  23. 240  COLOR,Z9+2:FOR I=16 TO 24:LOCATE I,1:PRINT SPC(39):NEXT
  24. 250  B1=0:GOSUB 390
  25. 260  IF J1<> 10 THEN B1=1:GOSUB 430
  26. 270  IF Q=10 THEN ON S GOTO 280,310,310,280,340
  27. 280  NEXT :NEXT :LOCATE 16,10:PRINT"Play again? (y/n):"
  28. 290  A$="":WHILE A$="":A$=INKEY$:WEND:IF A$="Y"THEN RUN ELSE COLOR 7,0:RUN "MENU1"
  29. 310  LOCATE 20,1:PRINT "Take two more balls, ";NA$(Z9);
  30. 320  FOR I=1 TO 2000:NEXT :LOCATE ,1:PRINT SPC(29)
  31. 330  S(Z9)=S-1:B1=1:GOSUB 390:IF J<>10 THEN 370 ELSE 360
  32. 340  LOCATE 20,1:PRINT "Take one more ball, ";NA$(Z9);
  33. 350  FOR I=1 TO 2200:NEXT :LOCATE ,1:PRINT SPC(28)
  34. 360  S(Z9)=1:B1=2:GOSUB 390:GOTO 280
  35. 370  S(Z9)=1:B1=2:GOSUB 430:GOTO 280
  36. 390  COLOR 15:LOCATE 17,39
  37. 400  FOR I=1 TO 31:READ PC:PRINT CHR$(PC);:NEXT :RESTORE
  38. 410  PS=1=1:J1=0:GOTO 440
  39. 430  PS=0
  40. 440  GOSUB 500:T=T(Z9):S=S(Z9):T=T+J
  41. 450  ON S(Z9) GOSUB 680,700,720,740,760
  42. 460  T(Z9)=T:S(Z9)=S:COLOR Z9+2,0
  43. 470  LOCATE 14+(Z9<2)*2,31+(Z9/2=INT(Z9/2))*20:PRINT T(Z9)
  44. 480  COLOR 0,Z9+2:RETURN
  45. 500  H=1:V=24:D=-1:COLOR 0,Z9+2
  46. 510  WHILE INKEY$="":LOCATE V,H:PRINT " ";
  47. 520  V=V+D:LOCATE V,H:PRINT "O";
  48. 530  FOR I=1 TO DIFLVL:NEXT :IF V=24 OR V=16 THEN D=-D
  49. 540  WEND:FOR H=2 TO 35:LOCATE V,H-1:PRINT" O";:A$=INKEY$
  50. 545  IF A$="]" THEN WHILE INKEY$="":WEND
  51. 550  SOUND 37,0.5:SOUND 32767,0.1:NEXT
  52. 560  J=0:WHILE H<40
  53. 570  IF SCREEN(V,H)=234 THEN J=J+1 ELSE 610
  54. 580  FOR D=-1 TO 1 STEP 2:X1=V:X2=H
  55. 590  X1=X1+D:X2=X2+1:IF SCREEN (X1,X2)=234 THEN LOCATE X1,X2:PRINT " ";:J=J+1:SOUND 74,0.5: SOUND 32767,0.1:GOTO 590
  56. 600  NEXT
  57. 610  LOCATE V,H-1:PRINT " O";:H=H+1:WEND
  58. 620  J1=J1+J
  59. 630  LOCATE 2*Z9+3,7+3*Q+B1:COLOR -(2+Z9)*(B1=0),-(2+Z9)*(B1<>0):G=J+48
  60. 640  IF J1=10 THEN IF PS THEN G=88 ELSE G=47
  61. 650  PRINT CHR$(G):COLOR 0,2+Z9
  62. 660  LOCATE V,H-1:PRINT " ";:RETURN
  63. 680  IF J1=10 THEN IF PS THEN S=2 ELSE S=5
  64. 690  RETURN
  65. 700  T=T+J:IF J=10 THEN S=3 ELSE S=4
  66. 710  RETURN
  67. 720  T=T+J*2:IF J<>10 THEN S=4
  68. 730  RETURN
  69. 740  T=T+J:IF J1=10 THEN S=5 ELSE S=1
  70. 750  RETURN
  71. 760  T=T+J:IF J=10 THEN S=2 ELSE S=1
  72. 770  RETURN
  73. 1001  DATA 234,31,29,29,234,31,29,29,234,28
  74. 1002  DATA 234,31,29,29,29,29,234,28,234,31
  75. 1003  DATA 29,29,234,28,234,31,29,29,234,31,234
  76.